/*
* Conditions Of Use
*
* This software was developed by employees of the Sigmatrix(Beijing) Corporation.
* This software is provided by sigmatrix as a service and is expressly
* provided "AS IS."  Sigmatrix MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED
* OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT
* AND DATA ACCURACY.  Sigmatrix does not warrant or make any representations
* regarding the use of the software or the results thereof, including but
* not limited to the correctness, accuracy, reliability or usefulness of
* the software.
*
* Permission to use this software is contingent upon your acceptance
* of the terms of this agreement.
*
*/
package com.sigmatrix.h5.web.vo;

import java.util.ArrayList;
import java.util.List;

import javax.validation.constraints.NotNull;

import org.hibernate.validator.constraints.NotEmpty;

import com.sigmatrix.h5.request.Request;

import io.swagger.annotations.ApiModelProperty;

/**
 *@ClassName: InStorageAddVo
 *@Description: 新建入库单保存接口
 *@date 2017年9月12日 上午1:22:02
 */
public class InStorageAddVo extends Request {

	/**
	 *@Fields serialVersionUID : 
	 */
	private static final long serialVersionUID = 6497972734667344480L;
	
	@ApiModelProperty(value="入库渠道类型,1-生产入库,2-销售退货入库,3-其他入库,4-收货入库")
	@NotNull(message="入库类型不能为空")
	private Short channelType;

	@ApiModelProperty(value="单据编号")
	@NotNull(message="单据编号不可以为空")
	private String orderCode;

	@ApiModelProperty(value="仓库")
	//@NotNull(message="仓库不可以为空")
	private Integer warehouseId;
	
	@ApiModelProperty(value="来源")
	private String source;

	@ApiModelProperty(value="备注")
	private String remarks;
	
	@ApiModelProperty(value="创建时间-开始")
	private String createTimeStart;
	
	@ApiModelProperty(value="创建时间-结束")
	private String createTimeEnd;
	
	@ApiModelProperty(value="入库方式，1-平台入库，2-手持入库，3-混合")
	private Short inStorageType;
	
	@ApiModelProperty(value="状态")
	private Short status;
	
	@ApiModelProperty(value="入库单详情")
	@NotEmpty(message="入库单详情不可以为空")
	private List<InStorageDetailAddVo> detailList = new ArrayList<InStorageDetailAddVo>();

	/**
	 *@return the channelType
	 */
	public Short getChannelType() {
		return channelType;
	}

	/**
	 *@param channelType the channelType to set
	 */
	public void setChannelType(Short channelType) {
		this.channelType = channelType;
	}

	/**
	 *@return the orderCode
	 */
	public String getOrderCode() {
		return orderCode;
	}

	/**
	 *@param orderCode the orderCode to set
	 */
	public void setOrderCode(String orderCode) {
		this.orderCode = orderCode;
	}

	/**
	 *@return the warehouseId
	 */
	public Integer getWarehouseId() {
		return warehouseId;
	}

	/**
	 *@param warehouseId the warehouseId to set
	 */
	public void setWarehouseId(Integer warehouseId) {
		this.warehouseId = warehouseId;
	}

	/**
	 *@return the source
	 */
	public String getSource() {
		return source;
	}

	/**
	 *@param source the source to set
	 */
	public void setSource(String source) {
		this.source = source;
	}

	/**
	 *@return the remarks
	 */
	public String getRemarks() {
		return remarks;
	}

	/**
	 *@param remarks the remarks to set
	 */
	public void setRemarks(String remarks) {
		this.remarks = remarks;
	}

	/**
	 *@return the createTimeStart
	 */
	public String getCreateTimeStart() {
		return createTimeStart;
	}

	/**
	 *@param createTimeStart the createTimeStart to set
	 */
	public void setCreateTimeStart(String createTimeStart) {
		this.createTimeStart = createTimeStart;
	}

	/**
	 *@return the createTimeEnd
	 */
	public String getCreateTimeEnd() {
		return createTimeEnd;
	}

	/**
	 *@param createTimeEnd the createTimeEnd to set
	 */
	public void setCreateTimeEnd(String createTimeEnd) {
		this.createTimeEnd = createTimeEnd;
	}

	/**
	 *@return the detailList
	 */
	public List<InStorageDetailAddVo> getDetailList() {
		return detailList;
	}

	/**
	 *@param detailList the detailList to set
	 */
	public void setDetailList(List<InStorageDetailAddVo> detailList) {
		this.detailList = detailList;
	}

	public Short getInStorageType() {
		return inStorageType;
	}

	public void setInStorageType(Short inStorageType) {
		this.inStorageType = inStorageType;
	}

	public Short getStatus() {
		return status;
	}

	public void setStatus(Short status) {
		this.status = status;
	}

	
}
